package com.xoa.controller.party.party;

import com.xoa.model.party.party.Party;
import com.xoa.model.users.Users;
import com.xoa.service.party.party.PartyService;
import com.xoa.service.users.UsersService;
import com.xoa.util.ToJson;
import com.xoa.util.dataSource.ContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

/**
      * 创建人：贾志康
      * 创建时间：2018年3月22日 17:27
      * 介绍：党组织控制器
      * 参数说明：
      */
@Controller
@RequestMapping("/party")
public class PartyController {

    @Resource
   private PartyService partyService;
    @Resource
    private UsersService usersService;

     /**
          * 创建人：贾志康
          * 创建时间：2018.3.22 15:09
          * 方法介绍：党组织信息添加
          * 参数说明：
          */
    @ResponseBody
    @RequestMapping("/insertPartys")
     public ToJson<Party> insertPartys(Party party){
         return partyService.insertParty(party);
     }

      /**
           * 创建人：贾志康
           * 创建时间：2018年3月22日 17:14
           * 方法介绍：根据Id删除党组织
           * 参数说明：
           */
      @ResponseBody
      @RequestMapping("/delPartyById")
      public ToJson<Party> delPartyById(Integer partyId){
          return partyService.delPartyById(partyId);
      }
       /**
            * 创建人：贾志康
            * 创建时间：2018年3月22日 17:17
            * 方法介绍：根据Id修改党组织
            * 参数说明：
            */
       @ResponseBody
       @RequestMapping("/upPartyById")
       public ToJson<Party> upPartyById(Party party){
           return partyService.upPartyById(party);
       }
        /**
             * 创建人：贾志康
             * 创建时间：2018年3月22日 17:19
             * 方法介绍：根据Id查询党组织
             * 参数说明：
             */
        @ResponseBody
        @RequestMapping("/selPartyById")
        public ToJson<Party> selPartyById(Integer partyId){
            return partyService.selPartyById(partyId);
        }

         /**
              * 创建人：贾志康
              * 创建时间：2018年3月22日 17:21
              * 方法介绍：查询所有党组织信息
              * 参数说明：
              */
         @ResponseBody
         @RequestMapping("/selPartyByCond")
         public ToJson<Party> selPartyByCond(Party party,Integer page,Integer pageSize,boolean useFlag){
             return partyService.selPartyByCond(party,page,pageSize,useFlag);
         }
		 
		 
        /**
         * 创建作者:   郭心雨
         * 创建日期:   2018年3月29日 下午12:55:37
         * 方法介绍:   获取下级部门
         */
        @ResponseBody
        @RequestMapping(value = "/getChDeptfq", produces = {"application/json;charset=UTF-8"})
        public ToJson<Party> getChDept(HttpServletRequest request) {
            ContextHolder.setConsumerType("xoa" + (String) request.getSession().getAttribute("loginDateSouse"));
            ToJson<Party> json = new ToJson<Party>(0, null);
            try {
                request.setCharacterEncoding("UTF-8");
                int pId = Integer.parseInt(new String(request.getParameter("pId").getBytes("ISO-8859-1"), "UTF-8"));
                List<Party> list = partyService.getChDept(pId);
                List<Party> list2 = new ArrayList<Party>();
                for (Party par : list) {
                    if(par.getpParentId()!=null&&par.getpParentId()>0){
                        Party party = partyService.getDeptByPId(par.getpParentId());
                        par.setpParentName(party.getpName());
                    }
                    List<Party> list1 = new ArrayList<Party>();
                    list1 = partyService.getChDept(par.getpId());
                    if (list1.size() != 0) {
//                        par.setIsHaveCh("1");
                    } else {
//                        par.setIsHaveCh("0");
                    }
                    list2.add(par);
                }
                List<Users> user = usersService.getUsersByPId(pId);
                int classifyCount=partyService.selClaNumByParentId(pId);
                if(classifyCount>0){
                    json.setTotleNum(1);
                }else{
                    json.setTotleNum(0);
                }
                json.setObject(user);
                json.setObj(list2);
                json.setMsg("OK");
                json.setFlag(0);
            } catch (Exception e) {
                json.setMsg(e.getMessage());
            }
            return json;
        }

    /**
     * 创建作者:   郭心雨
     * 创建日期:   2018年3月30日 下午15:09:35
     * 根据父部门查询其子部门编号是否重复
     * @return
     */
    @ResponseBody
    @RequestMapping("/selpNoBypParentId")
    public ToJson<Party> selpNoBypParentId(String pParentId,String pNo,int editFlag,String propNo){
        return partyService.selpNoBypParentId( pParentId, pNo, editFlag, propNo);
    }

}
